package com.simple.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.simple.system.domain.entity.SysDept;
import com.simple.system.domain.vo.SysDeptDetailsVo;
import com.simple.system.domain.vo.SysListDeptVo;

import java.util.List;
import java.util.Set;


/**
 * @Description 部门表(SysDept)表数据库访问层
 * @Author xiaoke
 * @Date 2024/8/10 18:00
 * @Version 1.0
 */
public interface SysDeptMapper extends BaseMapper<SysDept> {

    /**
     * 批量插入部门负责人
     *
     * @param deptId 部门id
     * @param leaderIds 部门负责人id
     */
    void insertDeptLeaders(Long deptId, Set<Long> leaderIds);

    /**
     * 批量删除部门负责人
     *
     * @param deptId 部门id
     */
    void deleteDeptLeaders(Long deptId);

    /**
     * 获取部门-树状形
     *
     * @return List<SysMenu>
     */
    List<SysListDeptVo> getDeptTree();


    /**
     * 根据部门名查询部门（包括已经在回收站的）
     * @param deptName 部门名
     * @return SysRole
     */
    SysDept existDeptName(String deptName);

    /**
     * 根据部门id查询部门详情
     * @param id 部门id
     * @return SysDeptDetailsVo
     */
    SysDeptDetailsVo selectByIdDetails(Long id);

    /**
     * 根据用户id，获取该用户是否是部门负责人
     * @param id 用户Id
     * @return Integer
     */
    Integer checkUserUse(Long id);

    /**
     * 根据部门id查询部门用户
     * @param deptId 部门id
     * @return Set<Long>
     */
    Set<Long> selectByDeptIdUserIds(Long deptId);

}

